The process of testing software applications is typically a manual process. A user writes a test case in human readable format in a test case document and follows this test case while testing the software application. The manual process of testing is typically a tedious and time consuming process. Also, the manual process may be prone to error since a person may tend to make a mistake while writing the test case in the test case document or a user testing the software application may tend to make a mistake in reading the test case document and performing the test.
To eliminate the above problems, an automated testing process for user interface of software applications was introduced. In automated testing process, test automation tools were used that typically could automate the testing process. In the automated testing process using the test automation tool, the user creates a test case in the test automation tool and the test automation tool performs the testing of the software application by executing the test case. The test case is typically written in a programming language understood by the test automation tool. Such a test automation tool typically requires a skilled user as it demands the user to have knowledge of the programming language understood by the test automation tool. Moreover, it is tedious and time consuming to write the test case in the programming language of the test automation tool. Also, test automation tools typically only identify standard user interface elements such as inputbox, dropdown list, checkbox, and radio button with standard properties such as width, height, number of characters. Test automation tools may not identify customized user interface elements such as the user interface elements having additional properties. For example, if a customized inputbox has additional properties such as background color, background pattern, the test automation tool may not identify the customized inputbox.